#include    <stdio.h>
#include<stdlib.h>
#include<unistd.h>

int main()
{
    int pid ;
    int fd;

    printf("About to run who into a file\n");

     /* create a new process or quit */
    if( (pid = fork() ) == -1 ){
        perror("fork"); exit(1);
    }

    /* child does the work */
    if ( pid == 0 ){
        close(1);               /* close, */
        fd = creat( "userlist", 0644 );     /* then open */
        execlp( "who", "who", NULL );       /* and run  */
        perror("execlp");
        exit(1);
    }

    /* parent waits then reports */
    if ( pid != 0 ){
        wait(NULL);
        printf("Done running who.  results in userlist\n");
    }

    return 0;
}
